Modern enterprise applications are typically implemented as multi-tier systems. Multi-tier systems serve the end-user by distributing the functionality of the enterprise application across multiple tiers. In general, the enterprise application functionality is distributed across a user interface at the front end, an application server, and a database management system (DBMS) at the backend. Depending on the component providing the user interface, an additional tier may exist between the user interface and the application tier. For example, if the user interface is a web browser, then a web server is usually interposed between the user interface and the application server. The web browser sends requests to the web server, and the web server interacts with the application server to obtain data from the database via the DBMS. The web server uses the data obtained from the database to generate a response to send to the web browser.
FIG. 1 illustrates a conventional computer system running an enterprise application. The enterprise application is typically viewed by a client (10) as a series of web pages. The enterprise application is distributed across a web server (14), an application server (16), and a database (18). A DBMS (20) provides an interface between the database (18) and the application server (16). The web server (14) is a program that, using the client/server model and Hypertext Transfer Protocol (HTTP), serves the files that form web pages to the client. An Apache web server, designed and distributed by the Apache Software Foundation, is an example of a web server.
Returning to FIG. 1, the application server (16) provides the business logic for the web based application. The iPlanet™ Application server, designed and distributed by Sun Microsystems, California USA, is an example of an application server. (iPlanet is a registered trademark of Sun Microsystems, California, USA). As described above, the application server (16) interacts with the database (18) via the DBMS (20). The DBMS (20) allows one or more processes to create and access data in a database. The DBMS (20) manages requests allowing the various processes accessing the database (18) to be free from having to understand where the data is physically located on storage media and, in a multi-user system, who else may also be accessing the data. In handling requests, the DBMS (20) ensures the integrity and security of the data.
The client (10) may be any process that is capable of accessing the web server (14) via a network (12). Typically, the client (10) includes functionality to send and receive HTTP requests (e.g., a web browser), and to interpret Hypertext Mark-up Language (HTML) documents. Additionally, the client (10) may include functionality to process Common Gateway Interface (CGI) script (e.g., a CGI engine), as well as other pieces of code embedded in HTML documents (e.g., Java™ embedded in Java™ Server Pages). The network (12) may be a local area network (LAN), a wide area network (WAN) as an Internet, etc. Typically, the client (10) sends a request to the web server (14), which in turn forwards the request to the application server (16). The application server (16) generally processes the request, and if required, stores or retrieves information from the database (18) via the DBMS (20).
As enterprise applications continue to grow, they have the potential to become unmanageable over time. This is usually due to enterprise application customizations, implementation work-arounds, and quick fixes during the various life-cycles of the software development. These modifications generally increase the complexity of the enterprise application, specifically, the complexity of the business process model. In these situations, the business process model of the enterprise application becomes more difficult to understand. Further, in many situations, without a complete understanding of the business process model, any modifications to the enterprise application may be difficult to implement correctly.